package com.ruoyi.student.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.student.domain.DTO.TUnitInfoDTO;
import com.ruoyi.student.domain.vo.TTaskInfoVo;
import com.ruoyi.student.domain.vo.TUnitInfoVo;
import com.ruoyi.student.mapper.TTaskInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.student.mapper.TUnitInfoMapper;
import com.ruoyi.student.domain.TUnitInfo;
import com.ruoyi.student.service.ITUnitInfoService;

/**
 * 单元Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-08-15
 */
@Service
public class TUnitInfoServiceImpl implements ITUnitInfoService 
{
    @Autowired
    private TUnitInfoMapper tUnitInfoMapper;
    @Autowired
    private TTaskInfoMapper tTaskInfoMapper;


    /**
     * 查询单元
     * 
     * @param id 单元主键
     * @return 单元
     */
    @Override
    public TUnitInfo selectTUnitInfoById(Long id)
    {
        return tUnitInfoMapper.selectTUnitInfoById(id);
    }

    @Override
    public TUnitInfoVo selectTUnitInfoVoById(Long id){
        TUnitInfoVo tUnitInfoVo = tUnitInfoMapper.selectTUnitInfoVoById(id);
        List<TTaskInfoVo> tTaskInfoVos = tTaskInfoMapper.selectTTaskInfoVoListByUnitId(id);
        tUnitInfoVo.setTTaskInfoVos(tTaskInfoVos);
        return tUnitInfoVo;
    }

    /**
     * 查询单元列表
     * 
     * @param tUnitInfo 单元
     * @return 单元
     */
    @Override
    public List<TUnitInfo> selectTUnitInfoList(TUnitInfo tUnitInfo)
    {
        return tUnitInfoMapper.selectTUnitInfoList(tUnitInfo);
    }
    @Override
    public List<TUnitInfoVo> selectTUnitInfoVoList(TUnitInfo tUnitInfo)
    {
        return tUnitInfoMapper.selectTUnitInfoVoList(tUnitInfo);
    }
    @Override
    public List<TUnitInfoVo> selectTUnitInfoVoRecordList(TUnitInfoDTO tUnitInfoDTO)
    {
        List<TUnitInfoVo>  tUnitInfoVos = tUnitInfoMapper.selectUnitListByCourseId(tUnitInfoDTO.getCourseId());
        if(tUnitInfoVos.size()>0){
            for (int i=0;i<tUnitInfoVos.size();i++){
                List<TTaskInfoVo> tTaskInfoVos = tTaskInfoMapper.selectTTaskInfoVoAndRecordListByUnitId(tUnitInfoVos.get(i).getId(),tUnitInfoDTO.getStudentId());
                tUnitInfoVos.get(i).setTTaskInfoVos(tTaskInfoVos);
            }
        }
        return tUnitInfoVos;
    }


    /**
     * 新增单元
     * 
     * @param tUnitInfo 单元
     * @return 结果
     */
    @Override
    public int insertTUnitInfo(TUnitInfo tUnitInfo)
    {
        tUnitInfo.setCreateTime(DateUtils.getNowDate());
        return tUnitInfoMapper.insertTUnitInfo(tUnitInfo);
    }

    /**
     * 修改单元
     * 
     * @param tUnitInfo 单元
     * @return 结果
     */
    @Override
    public int updateTUnitInfo(TUnitInfo tUnitInfo)
    {
        tUnitInfo.setUpdateTime(DateUtils.getNowDate());
        return tUnitInfoMapper.updateTUnitInfo(tUnitInfo);
    }

    /**
     * 批量删除单元
     * 
     * @param ids 需要删除的单元主键
     * @return 结果
     */
    @Override
    public int deleteTUnitInfoByIds(Long[] ids)
    {
        return tUnitInfoMapper.deleteTUnitInfoByIds(ids);
    }

    /**
     * 删除单元信息
     * 
     * @param id 单元主键
     * @return 结果
     */
    @Override
    public int deleteTUnitInfoById(Long id)
    {
        return tUnitInfoMapper.deleteTUnitInfoById(id);
    }
}
